package com.shadow.demo.shiro.util;

import com.shadow.demo.data.bo.LoginUser;
import org.apache.shiro.SecurityUtils;

import java.util.Arrays;

/**
 * 用户相关操作 工具类
 * */
public final class UserUtils {

    private UserUtils() {
    }

    /**
     * 获取当前登录人信息.
     * @return 当前登录人
     **/
    public static LoginUser getCurrentLoginUser() {
        return (LoginUser) SecurityUtils.getSubject().getPrincipal();
    }

    /**
     * 获取当前登录人账号.
     * @return 当前登录人账号
     **/
    public static String getCurrentLoginAccount() {
        return getCurrentLoginUser().getAccount();
    }

    /**
     * 是否拥有权限
     * @return true 拥有 false 没有
     * */
    public static boolean hasPermissions(final String... permission) {
        return Arrays.stream(permission)
                .anyMatch(getCurrentLoginUser().getPermissions()::contains);
    }
}
